Chart for WPF/Silverlight
コードでの Hi-Low-Open-Close チャートの作成
グラフ種別 > HighLowOpenClose チャート > コードでの Hi-Low-Open-Close チャートの作成

HiLowOpenClose チャートをプログラムで作成するには、次のコードを使用します。

C#
コードのコピー
HighLowOpenCloseSeries ds = new HighLowOpenCloseSeries()
{
XValueBinding = new System.Windows.Data.Binding("NumberOfDay"),
HighValueBinding = new System.Windows.Data.Binding("High"),
LowValueBinding = new System.Windows.Data.Binding("Low"),
OpenValueBinding = new System.Windows.Data.Binding("Open"),
CloseValueBinding = new System.Windows.Data.Binding("Close"),
SymbolStrokeThickness = 1,    SymbolSize = new Size(5, 5)
}
ds.PlotElementLoaded += (s, e) =>
{
PlotElement pe = (PlotElement)s;
double open = (double)pe.DataPoint["OpenValues"];
double close = (double)pe.DataPoint["CloseValues"];
if (open > close)
{
pe.Fill = green;
pe.Stroke = green;
}
else
{
pe.Fill = red;
pe.Stroke = red;
}
};

たとえば、これらの値がアプリケーションからコレクションとして提供された場合は、以下のコードを使用してデータ系列を作成できます。

C#
コードのコピー
//データ系列を作成します
HighLowOpenCloseSeries ds = new HighLowOpenCloseSeries();
ds.XValuesSource = dates; //日付は X 軸に置きます
ds.OpenValuesSource = open;
ds.CloseValuesSource = close;
ds.HighValuesSource = hi;
ds.LowValuesSource = lo;
//系列をチャートに追加します
chart.Data.Children.Add(ds);
//グラフタイプを設定します
chart.ChartType = isCandle
  ? ChartType.Candle
  : ChartType.HighLowOpenClose;

別の方法として、データ連結を使用できます。たとえば、データが StockQuote オブジェクトのコレクションとしてある場合は、次のようになります。

C#
コードのコピー
public class Quote
{
  public DateTime Date { get; set; }
 public double Open { get; set; }
 public double Close { get; set; }
 public double High { get; set; }
 public double Low { get; set; }
}

次に、データ系列を作成するコードは、次のようになります。

C#
コードのコピー
//データ系列を作成します
HighLowOpenCloseSeries ds = new HighLowOpenCloseSeries();
//5つの値をすべて連結します
ds.XValueBinding = new Binding("Date"); //日付は X 軸に置きます
ds.OpenValueBinding = new Binding("Open");
ds.CloseValueBinding = new Binding("Close");
ds.HighValueBinding = new Binding("High");
ds.LowValueBinding = new Binding("Low");
//系列をチャートに追加します
chart.Data.Children.Add(ds);
//グラフタイプを設定します
chart.ChartType = isCandle
  ? ChartType.Candle
  : ChartType.HighLowOpenClose;        
関連トピック